// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fowo.api.common.annotaion.*;
import com.fowo.api.common.mybatis.handlers.SysFileListTypeHandler;
import com.fowo.api.sys.entity.SysFile;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * StockOutProduct
 */
@DS("ds24")
@Getter
@Setter
@TableName(value = "stock_out_product", autoResultMap = true)
@Schema(title = "出库单子表")
public class StockOutProduct implements Serializable {

  /**
   * 产品图片
   */
  @TableField(
    value = "`product_img`",
    typeHandler = SysFileListTypeHandler.class
  )
  @Schema(title = "产品图片")
  private List<SysFile> productImg;

  /**
   * 品名
   */
  @TableField(value = "`product_id`")
  @JoinField(Product.class)
  @Schema(title = "品名")
  private Long productId;

  /**
   * SKU
   */
  @TableField(value = "`sku`")
  @Schema(title = "SKU")
  private String sku;

  /**
   * 店铺
   */
  @TableField(value = "`sid`")
  @JoinField(ShopInfo.class)
  @Schema(title = "店铺")
  private Long sid;

  /**
   * FNSKU
   */
  @TableField(value = "`fnsku`")
  @Schema(title = "FNSKU")
  private String fnsku;

  /**
   * FNSKU
   */
  @TableField(value = "`fnsku_id`")
  @JoinField(ListingFather.class)
  @Schema(title = "FNSKU")
  private Long fnskuId;

  /**
   * 可用量
   */
  @TableField(value = "`good_num`")
  @Schema(title = "可用量")
  private Long goodNum;

  /**
   * 可用出库量
   */
  @TableField(value = "`product_good_num`")
  @Schema(title = "可用出库量")
  private Integer productGoodNum;

  /**
   * 可用仓位
   */
  @TableField(value = "`storage_bin_good_id`")
  @JoinField(WarehouseBin.class)
  @Schema(title = "可用仓位")
  private Long storageBinGoodId;

  /**
   * 次品量
   */
  @TableField(value = "`bad_num`")
  @Schema(title = "次品量")
  private Long badNum;

  /**
   * 次品出库量
   */
  @TableField(value = "`product_bad_num`")
  @Schema(title = "次品出库量")
  private Integer productBadNum;

  /**
   * 次品仓位
   */
  @TableField(value = "`storage_bin_bad_id`")
  @JoinField(WarehouseBin.class)
  @Schema(title = "次品仓位")
  private Long storageBinBadId;

  /**
   * 待发货量
   */
  @TableField(value = "`wait_shipments`")
  @Schema(title = "待发货量")
  private Integer waitShipments;

  /**
   * 单价
   */
  @TableField(value = "`price`")
  @Schema(title = "单价")
  private java.math.BigDecimal price;

  /**
   * 成本价格
   */
  @TableField(value = "`cost_price`")
  @Schema(title = "成本价格")
  private java.math.BigDecimal costPrice;

  /**
   * 主材料单价
   */
  @TableField(value = "`main_unit_price`")
  @Schema(title = "主材料单价")
  private java.math.BigDecimal mainUnitPrice;

  /**
   * 主材料克重
   */
  @TableField(value = "`gram_weight`")
  @Schema(title = "主材料克重")
  private java.math.BigDecimal gramWeight;

  /**
   * 工费
   */
  @TableField(value = "`labor_costs`")
  @Schema(title = "工费")
  private java.math.BigDecimal laborCosts;

  /**
   * 辅料
   */
  @TableField(value = "`accessories_price`")
  @Schema(title = "辅料")
  private java.math.BigDecimal accessoriesPrice;

  /**
   * 所属出库单
   */
  @TableField(value = "`stock_out_id`")
  @JoinField(StockOut.class)
  @Schema(title = "所属出库单")
  private Long stockOutId;

  /**
   * 编号
   */
  @TableField(value = "`id`")
  @TableId(type = IdType.ASSIGN_ID)
  @Schema(title = "编号")
  private Long id;

  /**
   * 创建时间
   */
  @TableField(value = "`create_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date createTime;

  /**
   * 创建人
   */
  @TableField(value = "`create_user`")
  @Schema(title = "创建人")
  private Long createUser;

  /**
   * 更新时间
   */
  @TableField(value = "`last_update_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "更新时间")
  private java.util.Date lastUpdateTime;

  /**
   * 更新人
   */
  @TableField(value = "`last_update_user`")
  @Schema(title = "更新人")
  private Long lastUpdateUser;

  /**
   * 删除标记
   */
  @TableField(value = "`del_flag`")
  @TableLogic
  @Schema(title = "删除标记")
  private Boolean delFlag;

  /**
   * 店铺名称
   */
  @TableField(value = "`shop_name`")
  @Schema(title = "店铺名称")
  private String shopName;

  /**
   * 出库数量
   */
  @TableField(value = "`quantity`")
  @Schema(title = "出库数量")
  private Integer quantity;

  /**
   * 单位费用
   */
  @TableField(value = "`single_fee`")
  @Schema(title = "单位费用")
  private java.math.BigDecimal singleFee;

  /**
   * 单位出库成本
   */
  @TableField(value = "`single_stock_cost`")
  @Schema(title = "单位出库成本")
  private java.math.BigDecimal singleStockCost;

  /**
   * 单位头程
   */
  @TableField(value = "`unit_head_fee`")
  @Schema(title = "单位头程")
  private java.math.BigDecimal unitHeadFee;

  /**
   * 货值
   */
  @TableField(value = "`product_amounts`")
  @Schema(title = "货值")
  private java.math.BigDecimal productAmounts;

  /**
   * 费用
   */
  @TableField(value = "`fee_cost`")
  @Schema(title = "费用")
  private java.math.BigDecimal feeCost;

  /**
   * 头程
   */
  @TableField(value = "`head_way_fee`")
  @Schema(title = "头程")
  private java.math.BigDecimal headWayFee;

  /**
   * 出库成本
   */
  @TableField(value = "`amount`")
  @Schema(title = "出库成本")
  private java.math.BigDecimal amount;

  /**
   * 小计
   */
  @TableField(value = "`subtotal`")
  @Schema(title = "小计")
  private java.math.BigDecimal subtotal;

  /**
   * 当期出库成本金额
   */
  @TableField(value = "`current_issue_cost_amount`")
  @Schema(title = "当期出库成本金额")
  private java.math.BigDecimal currentIssueCostAmount;

  /**
   * 总计
   */
  @TableField(value = "`total`")
  @Schema(title = "总计")
  private Integer total;

  /**
   * 源表勾稽字段
   */
  @TableField(value = "`cross_qty`")
  @Schema(title = "源表勾稽字段")
  private Integer crossQty;

  /**
   * 产品名称
   */
  @TableField(value = "`product_name`")
  @Schema(title = "产品名称")
  private String productName;

  /**
   * 出库批次号
   */
  @TableField(value = "`batch_no`")
  @Schema(title = "出库批次号")
  private String batchNo;

  /**
   * 货值
   */
  @TableField(value = "`outbound_value`")
  @Schema(title = "货值")
  private java.math.BigDecimal outboundValue;

  /**
   * 费用
   */
  @TableField(value = "`outbound_value_cost`")
  @Schema(title = "费用")
  private java.math.BigDecimal outboundValueCost;

  /**
   * 头程
   */
  @TableField(value = "`ephalic_process`")
  @Schema(title = "头程")
  private java.math.BigDecimal ephalicProcess;
}
